import 'package:notification_listen_service_plugin/notification_listen_body.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';

import 'notification_listen_service_plugin_method_channel.dart';

abstract class NotificationListenServicePluginPlatform extends PlatformInterface {

  NotificationListenServicePluginPlatform() : super(token: _token);

  static final Object _token = Object();

  static NotificationListenServicePluginPlatform _instance = MethodChannelNotificationListenServicePlugin();

  static NotificationListenServicePluginPlatform get instance => _instance;

  static set instance(NotificationListenServicePluginPlatform instance) {
    PlatformInterface.verifyToken(instance, _token);
    _instance = instance;
  }

  Future<bool> requestPermission() async {
    throw UnimplementedError('requestPermission() has not been implemented.');
  }

  Future<bool> isPermissionGranted() async {
    throw UnimplementedError('isPermissionGranted() has not been implemented.');
  }

  Future<void> sendNotification(String title, String content) async {
    throw UnimplementedError('sendNotification() has not been implemented.');
  }

  Future<void> listenNotification(Function(NotificationListenBody) callback) async {
    throw UnimplementedError('listenNotification() has not been implemented.');
  }
}
